﻿using System;
using System.Diagnostics;
using System.Security.Principal;

namespace IISManagerTest
{
    internal class Program
    {
        public static void AdministratorRun()
        {
            /**
             * 当前用户是管理员的时候，直接启动应用程序
             * 如果不是管理员，则使用启动对象启动程序，以确保使用管理员身份运行
             */
            //获得当前登录的Windows用户标识
            WindowsIdentity identity = WindowsIdentity.GetCurrent();
            // 创建Windows 用户主题
            WindowsPrincipal principal = new WindowsPrincipal(identity);
            if (!principal.IsInRole(WindowsBuiltInRole.Administrator))
            {
                //创建启动对象
                ProcessStartInfo startInfo = new ProcessStartInfo
                {
                    FileName = AppDomain.CurrentDomain.BaseDirectory,
                    Arguments = string.Join(" ", ""),
                    Verb = "runas"
                };
                //设置运行文件
                //设置启动参数
                //设置启动动作,确保以管理员身份运行
                //如果不是管理员，则启动 UAC
                Process.Start(startInfo);
            }
        }

        private static void Main(string[] args)
        {
            // AdministratorRun();
            string sitename = "www.demo.com";
            IISManager.RestartWEbSite(sitename);
            IISManager.RestartIISPool(sitename);
        }
    }
}